home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / CRYPT20.ZIP / DECODE.ASM < prev    next >
Assembly Source File  |  1993-11-07  |  2KB  |  95 lines

  1. .model tiny
  2. .radix 16
  3. .code
  4.         org 100
  5. start:
  6. OpenPicture:        
  7.         mov     ah,3c
  8.         xor     cx,cx
  9.         mov     dx,offset Destfile
  10.         int     21
  11.         jc      erroropen
  12.         mov     Destination,ax
  13.         
  14.         mov     ax,3d00
  15.         mov     dx,offset filename
  16.         int     21
  17.         jc      erroropen
  18.         xchg    bx,ax
  19.  
  20. GoToPictureData:        
  21.         mov     ax,4200
  22.         mov     dx,300
  23.         xor     cx,cx
  24.         int     21
  25.  
  26. NotherLoop:        
  27.         mov     dx,offset ReadBuf
  28.         mov     cx,200
  29.         mov     ah,3f
  30.         int     21
  31.         push    bx ax
  32.         call    Decoder
  33.         pop     ax bx
  34.         cmp     ax,200
  35.         je      NotherLoop
  36.  
  37. CloseFile:
  38.         mov     ah,3e
  39.         int     21
  40.         mov     ah,3e
  41.         mov     bx,destination
  42.         int     21
  43.  
  44. Terminate:
  45.         mov     ax,4c00
  46.         int     21
  47.  
  48. ErrorOpen:
  49.         mov     ah,09
  50.         mov     dx,offset error
  51.         int     21
  52.         mov     ax,4c01
  53.         int     21
  54.  
  55. Decoder:
  56.         mov     si,offset ReadBuf
  57.         mov     di,offset WriteBuf
  58.         mov     cx,40
  59. DecodeIt:        
  60.         push    cx
  61.         call    GetByte
  62.         pop     cx
  63.         mov     al,workbyte
  64.         stosb
  65.         loop    DecodeIt
  66.  
  67.         mov     dx,offset WriteBuf
  68.         mov     bx,Destination
  69.         mov     cx,40
  70.         mov     ah,40
  71.         int     21
  72.         ret
  73.  
  74. GetByte:
  75.         mov     workbyte,0
  76.         mov     cx,8        
  77. GetBits:        
  78.         lodsb
  79.         shr     al,1
  80.         rcr     workbyte,1
  81.         loop    GetBits
  82.         ret
  83.  
  84. workbyte  db    0
  85. error     db      'Error opening files.$'
  86. filename  db      'message.scr',0
  87. destfile  db      'newmess.dat',0
  88.  
  89. destination     dw      ?
  90.  
  91. ReadBuf  db      200 dup(?)
  92. WriteBuf db      40 dup(?)
  93.  
  94. end start
  95.